/*
 * Licensed to the 南京汇海交通科技有限公司
 *
 * Copyright (c) 2025.
 * All rights reserved.
 *
 * 本软件属南京汇海交通科技有限公司所有，在未获得南京汇海交通科技有限公司正式授权情况下，任何企业和个人，不能获取、阅读、安装、传播本软件涉及的任何受知识产权保护的内容。
 */
package com.chframework.poi;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

/**
 * 描述：定义Workbook的类型(Excel文件两种后缀名.xls和.xlsx)
 * 日期：2022-02-28
 * 作者：周孝兵
 */
public enum WorkbookType {
// CHECKSTYLE:OFF

    XLS(2003, "HSSF", ".xls"),
    XLSX(2007, "XSSF", ".xlsx");

    WorkbookType(Integer code, String name, String suffix) {
        this.code = code;
        this.name = name;
        this.suffix = suffix;
    }

    /**
     * office 版本
     */
    private Integer code;
    /**
     * 枚举值
     */
    private String name;
    /**
     * 文件后缀名
     */
    private String suffix;

    public Integer getCode() {
        return this.code;
    }

    public String getName() {
        return this.name;
    }

    public String getSuffix() {
        return suffix;
    }

    /**
     * 创建Workbook对象
     */
    public Workbook create() {
        return this.getCode() == 2003 && "HSSF".equalsIgnoreCase(this.getName()) ? new HSSFWorkbook() : new XSSFWorkbook();
    }

// CHECKSTYLE:ON
}
